Segmentation and reassembly of network packets for switched fabric networks

ABSTRACT

Reassembly of member cells into a packet comprises receiving an incoming member cell of a packet from a switching fabric wherein each member cell comprises a segment of the packet and a header, generating a reassembly key using selected information from the incoming member cell header wherein the selected information is the same for all member cells of the packet, checking a reassembly table in a content addressable memory to find an entry that includes a logic key matching the reassembly key, and using a content index in the found entry and a sequence number of the incoming member cell within the packet, to determine a location offset in a reassembly buffer area for storing the incoming member cell at said location offset in the reassembly buffer area for the packet for reassembly.

BACKGROUND

1. Field of the Invention

The present invention relates generally to packet processing, and inparticular, to packet segmentation and reassembly in switching fabricnetworks.

2. Description of Related Art

A network switching system comprises one or more switch fabric modules,such as Application Specific Integrated Circuits (ASICs), and aplurality of network switching modules. A network switching moduleredirects incoming data on one network node, out to another network nodevia the switch fabric module(s).

A network switching module performs segmentation and reassembly ofnetwork packets such as Ethernet packets. Segmentation fragments apacket, such as variable length packet, into fixed length cells to betransported across a switched fabric. Thereafter, the cells arereassembled to reconstitute the original packet.

A packet is segmented into fragments where each fragment is a fixedsized cell (e.g., 128 bytes or 256 bytes). All the fragments of specificpackets are called member cells of that packet. Each cell gets a fixedor variable sized header. The header is formed from packetpre-classification information added by the ingress packet processor. Apacket context is a buffer (i.e., packet buffer context) where membercells which completely match the criteria of membership of a packet areput together. The context is a function of 10 to 100 various parametersof packets and cells. An example minimum algorithm complexity forreassembling packets is in the order of O(mn) where m is the time ittakes to search for a packet buffer context and n is the number ofparameters used to find the packet buffer context. As such, logic toperform segmentation and reassembly is time consuming and addssignificant latency in packet forwarding in the network.

BRIEF SUMMARY

One embodiment comprises segmentation and reassembly of network packetsinto cells for sending them over to cell switched fabric networks toachieve fixed/constant latency. One embodiment comprises segmentation ofa packet into member cells and reassembly of the member cells for agiven packet buffer context, in a cell-based distributed system.

According to embodiments of the invention, a process for reassembly ofmember cells into a packet comprises receiving an incoming member cellof a packet from a switching fabric wherein each member cell comprises asegment of the packet and a header, generating a reassembly key usingselected information from the incoming member cell header wherein theselected information is the same for all member cells of the packet,checking a reassembly table in a content addressable memory to find anentry that includes a logic key matching the reassembly key, and using acontent index in the found entry and a sequence number of the incomingmember cell within the packet, to determine a location offset in areassembly buffer area for storing the incoming member cell at saidlocation offset in the reassembly buffer area for the packet forreassembly.

The reassembly process further includes maintaining a reassembly tablein a content addressable memory, wherein the reassembly table includesone or more entries corresponding to one or more packets, and whereineach entry comprises a logic key for a corresponding packet and acontent index into a reassembly buffer area for storing incoming membercells of that packet.

Maintaining the reassembly table includes, in response to an incomingmember cell of a packet, if the incoming member cell is a Start ofPacket (SOP) cell of a packet or if the incoming cell lookup key is notfound in the reassembly table, generating a new logic key using selectedinformation from the incoming cell header wherein the selectedinformation is the same for all member cells of the packet, allocatingan area of the reassembly buffer for storing member cells of the packet,and placing a new entry into the reassembly table. The new entryincludes said new logic key and a new content index into the reassemblybuffer area for storing incoming member cells of that packet.

The packet is reassembled using the stored member cells in thereassembly buffer area for the packet using cell offset number orsequence number from cell header. The cell offset number with respect tothe packet is unique for each member cell. The cell offset number orsequence number is not included in the reassembly key formation. Theswitching fabric comprises a switched fabric in a distributedinformation technology environment.

These and other aspects, features and advantages of the invention willbe understood with reference to the drawing figures, and detaileddescription herein, and will be realized by means of the variouselements and combinations particularly pointed out in the appendedclaims. It is to be understood that both the foregoing generaldescription and the following brief description of the drawings anddetailed description of the invention are exemplary and explanatory ofpreferred embodiments of the invention, and are not restrictive of theinvention, as claimed.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

The subject matter which is regarded as the invention is particularlypointed out and distinctly claimed in the claims at the conclusion ofthe specification. The foregoing and other objects, features, andadvantages of the invention are apparent from the following detaileddescription taken in conjunction with the accompanying drawings inwhich:

FIG. 1 is a block diagram illustrating an example network switchingsystem including a packet processing system, according to an embodimentof the invention;

FIG. 2 is a block diagram illustrating an example architecture includinga packet processing system, according to an embodiment of the presentinvention;

FIG. 3 is a block diagram illustrating an example reassembly module of apacket processing system, according to an embodiment of the presentinvention;

FIG. 4 is a flowchart showing a packet processing system operation,according to an embodiment of the invention; and

FIG. 5 is a block diagram illustrating another example informationtechnology system utilizing packet processing, according to anembodiment of the present invention.

The detailed description explains the preferred embodiments of theinvention, together with advantages and features, by way of example withreference to the drawings.

DETAILED DESCRIPTION

The present invention may be understood more readily by reference to thefollowing detailed description of the invention taken in connection withthe accompanying drawing figures, which form a part of this disclosure.It is to be understood that this invention is not limited to thespecific devices, methods, conditions or parameters described and/orshown herein, and that the terminology used herein is for the purpose ofdescribing particular embodiments by way of example only and is notintended to be limiting of the claimed invention. One or more exemplaryembodiments of the invention are described below in detail. Thedisclosed embodiments are intended to be illustrative only sincenumerous modifications and variations therein will be apparent to thoseof ordinary skill in the art.

Embodiments of the invention relate to packet processing includingprocessing of network packets in switched fabric networks informationtechnology environments. One embodiment comprises low overheadsegmentation and reassembly of network packets for reducing datacommunication latency in switched fabric networks. One embodimentcomprises segmentation of an Ethernet packet into member cells andreassembly of the member cells for a given packet buffer context, in acell-based distributed system.

According to an embodiment of the invention, process for reassembly ofmember cells into a packet comprises obtaining a SOP cell or any firstout of sequence cell of a new packet, constructing an associated packetbuffer context, receiving member cells of that packet, copying themember cells without headers and placing them in sequence in the packetbuffer context, and after all the member cells are in the buffer,providing content of the packet buffer context as the reassembled packetfor further processing.

Exemplary embodiments of a packet processing system according to thepresent invention are described herein below. FIG. 1 shows a blockdiagram of a network a network switching system 90, comprising one ormore switch fabric modules 110, and a plurality of network switchingmodules 94. In one embodiment, each of the modules 110 and 94 comprisesan Application Specific Integrated Circuit (ASIC). Each networkswitching module 94 redirects incoming data on one network node, out toanother network node via the switch fabric module(s).

As shown in FIG. 1, each network switching module 94 is connected to theswitch fabric module 110 via a fabric interface 96. Latency in thenetwork 90 includes the time required for a packet to traverse thenetwork from a source (transmitter) to a destination (receiver). Onecomponent of latency involves segmentation and reassembly of networkpackets in each networking switch 94.

A networking switch 94 accepts network packets from various portinterfaces. For each packet it performs look up operation which is partof packet processing. Based on packet processing operations, it appendsa pre-classification header on each packet. The pre-classificationheader allows packet processing by other logic in the network switch.Before the whole packet with pre-classification information is sent tothe switch fabric 110 via fabric interface 96, Segmentation andReassembly (SAR) Logic 100 fragments the packet into one or more fixedsized cells. The cells follow a format which is understood by the switchfabric logic.

FIG. 2 shows a segmentation and reassembly architecture 120 wherein aSAR logic module 100 comprises a segmentation system 100S thatimplements segmentation of packets into member cells, and a reassemblysystem 100R that implements reassembly of member cells into a packet,according to the invention. The segmentation system 100S operatesindependent of a reassembly system 100R. Multiple segmentation systems100S may be connected to the switching fabric 110. Similarly multiplereassembly systems 100R may be connected to the switching fabric 110.

Each segmentation system 100S and each reassembly system 100Rcommunicate with a switching fabric 110. In one embodiment of theinvention, the architecture 120 may be implemented across a distributedsystem. In one embodiment of the invention, the architecture 120 may beimplemented within a communication switch, such as detailed in relationto FIG. 5 described further below.

The segmentation system 100S includes a segmentation module 101, acontext table 102 and a buffer 103. The segmentation module 101 includessegmentation logic. The segmentation system 100S receives packets, suchas Ethernet packets, wherein the segmentation module 101 segments eachpacket into member cells for transport over the switching fabric 110,wherein the switching fabric 110 routes each cell to an appropriatereassembly system 100R for reassembly into a packet. A cell comprises aheader and a payload. The context table 102 provides the status of eachreceived packet.

In one embodiment, the segmentation module 101 segments an incomingpacket at 256B cell boundaries, wherein the last cell of the packet maybe either 256B or 128B depending upon the size of the last cell in thepacket. Common elements of the cell header in a given packet can besaved in buffer 103 as a common structure. As the segmentation module101 concatenates the cell header to a cell payload, the common structureis also included, along with a (recalculated) sequence number and parityinformation for error correction.

Further, a reassembly system 100R comprises a segmentation module 101, areassembly module 104, a content addressable memory 106 such as a TCAM,and a buffer 107. TCAM is a ternary content addressable memory. With acontent addressable memory, the data is provided to the contentaddressable memory, and the content addressable memory returns a list ofaddresses where the data is stored, if found. Content addressable memorysearches the entire memory in one operation. When a generated reassemblykey is provided to the TCAM and in one operation the TCAM returns anentry in the reassembly table where a matching logic key is stored, iffound. The algorithmic complexity of TCAMs search algorithm is O(1).

For reassembly, matching a cell to a packet is based on certaincontexts. Each cell context is checked and if it matches a buffercontext the cell belongs to, then the cell is stored in that buffercontext for reassembling a packet.

FIG. 3 illustrates an example operation of the reassembly system 100Raccording to a reassembly logic of the reassembly module 104. When a SOPcell arrives at the reassembly system 100R, there is no context, andthere is no content index in the TCAM table 133. As such, for a SOP cellof a new packet, a new reassembly logic key 132, and correspondingcontent index 135, is created and stored in a TCAM table 133.

A reassembly logic key 132 for a cell is created using tuples (i.e.,ordered lists of elements) which are extracted from the cell headerelements. The elements in the cell header include Source port,Destination port, COS, Unicast/Multicast bits, Source device ID,Destination device ID, Policer match, Vlan tag, Sequence number, packetid, Cell size and parity. A sequence number of the cell is not used ingenerating the logic key 132. The logic key 132 is placed in a TCAMtable 133 comprising a TCAM bank in the TCAM 106. The logic key 132includes those elements of the cell header that do not change across thedifferent cells in a given packet. The sequence number (i.e., thesequence of the cell in a given packet) is not used to create the logickey 132.

Further, a reassembly packet buffer context 131 is constructed in thereassembly buffer 107 where the SOP cell is stored. The packet buffercontext 131 has an associated content index 135 which indicates locationof the packet buffer context 131 in the buffer 107. For each logic key132 there is a corresponding content index 135 in the TCAM table 133. Inone example, a content index X is associated with (or maps to) a firstpacket buffer context 131 (buffer segment), a content index Y isassociated with (or maps to) a second packet buffer context 131, acontent index Z is associated with (or maps to) a third packet buffercontext 131, etc. As such, each content index corresponds to a packetbuffer context 131 where cells of the same context are stored forreassembly purposes.

As such, for a new logic key 132, the TCAM table 133 is also populatedwith a content index 135 for a new packet buffer context 131. For allsubsequent cells of as packet, TCAM table lookups for existing logickeys provide content indices of the already created packet buffercontexts 131.

Generally, the logic key serves as a way to lookup can index in the TCAMtable for an incoming cell 130. The lookup logic finds context index ofreassembly context (i.e., packet buffer context 131) for each incomingcell based on context of that cell.

Each cell carries a sequence number which identifies its sequence in thepacket. The sequence number is an offset into the associated packetbuffer context 131 where the cell is stored. The sequence number is notpart of the logic key.

A logic key 132 is used as input to a TCAM lookup logic 134 for the TCAMtable 133. For a given logic key 132, the TCAM lookup logic looks up acontent index 135 in the TCAM table, wherein the content index is anindex into the buffer 107 where a packet buffer context 131 for anincoming cell resides. As such, the content index 135 are offsets intothe buffer 107 for the packet buffer contexts 131 of incoming cells(e.g., Cell 0, . . . , Cell N).

As successive cells arrive, logic keys are created using tuples. Forexample, as a cell arrives into egress, tuples are extracted from thecell header to create a logic key, and the logic key is used in the TCAMlookup table to lookup index of a packet buffer context 131 associatedwith the cell. Since this is a consecutive (or successive) cell (not aSOP) of the packet, the TCAM logic 134 uses the logic key to look intoTCAM table for a context index 135 to the packet buffer context 131associated with the cell. The found content index provides an offset tothe buffer 107 where a packet buffer context 131 for the incoming cellsfor the packet are stored.

Once a context index 135 for a corresponding packet buffer context 131of an incoming cell is found, the cell sequence number is used to findthe offset for that cell in the packet buffer context 131 in thereassembly buffer 107, and to store the cell in that offset in thepacket buffer context 131. As such, the sequence number of the cells isan offset into the packet buffer context 131 associated with the cell.

Storing the cell includes linking the cell into the corresponding packetcontext buffer 131 based on the index 135 into the reassembly buffer107, using the sequence number of the cells act as offset into thecontext buffer 131. As such the cell header is removed, and the cell islinked into the packet context buffer 131 as the packet is reassembled.A count of the cells for each packet context buffer is maintained,wherein the entire packet is considered reassembled when the requiredcell count for the packet is reached. At this point egress processingfor the assembled packet can begin. In the above lookup logic, thealgorithm complexity for lookup into the TCAM is O(1).

Ingress processing (e.g., segmentation system 100S) creates cells frompackets and adds redundancy check, such as CRC, to each cell beforetransport on switching fabric. A cell coming into egress processing(e.g., reassembly system 100R) is checked for errors, such as bychecking encoding, before the cell is used for reassembly. If errors aredetected, then error correction (e.g., forward error correction orbackward error correction) corrects the errors in a cell beforereassembly. TCAM lookup logic can also detect errors in an incoming cellin egress processing.

FIG. 4 is a flowchart of packet processing logic 150, according to anembodiment of the invention. According to an embodiment of theinvention, one or more processing blocks of the logic 150 may beimplemented in one or more devices and/or switches in a distributedsystem. In a segmentation phase or ingress device, process block 151comprises segmenting a packet into member cells for transport on aswitching fabric, wherein each member cell includes a header and asegment of the packet payload. In one embodiment, each member cellheader includes a payload and a header such that cell headers includecommon structures with common elements along with a cell sequence numberand parity information for error detection and error correction inpacket reassembly at the reassembly module. Process block 152 comprisesproviding the member cells to a switching fabric for transport.

In a reassembly phase or egress device, process block 153A comprisesmaintaining a reassembly table in a content addressable memory, whereinthe reassembly table includes one or more entries corresponding to oneor more packets, and wherein each entry comprises a logic key for acorresponding packet and a content index into a reassembly buffer areafor storing incoming member cells of that packet.

Process block 153B handles a SOP cell of a packet. In response to areceiving an incoming member cell of a packet that is a SOP cell or ifthe cell lookup key is not found in the reassembly table (i.e., anon-SOP cell if it arrives ahead of others, out of order) of a packet,process block 153B generates a new logic key using selected informationfrom the SOP (or the received out of order non-SOP) cell header whereinthe selected information is the same for all member cells of the packet,allocates an area of the reassembly buffer for storing member cells ofthe packet, and places a new entry into the reassembly table, whereinthe new entry includes said new logic key and a new content index intothe reassembly buffer area for storing incoming member cells of thatpacket. Block 153B also starts a reassembly timer for this context. Thepacket is reassembled using the stored member cells in the reassemblybuffer area for the packet using cell offset number or sequence numberfrom cell header. The cell offset number with respect to the packet isunique for each member cell. The cell offset number or sequence numberis not included in the reassembly key formation. In one example, theswitching fabric comprises a switched fabric in a distributedinformation technology environment.

Process block 154 comprises receiving a successive incoming member cellof a packet from a switching fabric wherein each member cell comprises asegment of the packet and a header. Process block 155 comprisesgenerating a reassembly key using selected information from the incomingmember cell header wherein the selected information is the same for allmember cells of the packet. Process block 156 comprises checking areassembly table in a content addressable memory to find an entry thatincludes a logic key matching the reassembly key. Process block 157comprises using a content index in the found entry and a sequence numberof the incoming member cell within the packet, to determine a locationoffset in a reassembly buffer area for storing the incoming member cellat said location offset in the reassembly buffer area for the packet forreassembly. Process block 158 comprises checking if a member cell counthas been reached. If yes, process proceeds to block 159, otherwise theprocess proceeds to block 158A. Process block 159 comprises reassemblingthe stored member cells into a packet when a count is reached whichindicates all member cells of the packet are present.

Decision block 158A checks if a reassembly timer timed out. If all thecells associated to a packet do not arrive within certain time periodstarting from receiving the first cell, then in process block 158B thelogic declares the reassembly error and clears reassembly context 132,context index 135 and reassembly buffers 131. Otherwise the processproceeds to block 154 for next member cell of the packet.

FIG. 5 is a distributed computing architecture 200 implementing packetprocessing in a communication network based on asynchronous transfermode (ATM) switching, according to another embodiment of the invention.In one embodiment, a transmitter device 201 sends packets for deliveryto a target receiver 202 via one or more communication switches 203implementing packet processing according to embodiments of theinvention. One or more communication switches 203 implement packetprocessing comprising segmentation and/or reassembly describe herein,according to embodiments of the invention. A packet from a transmitter201 is segmented into member cells and transported by the switches 203in a communication fabric, wherein the member cells are reassembled intoa packet for delivery to the target receiver.

Aspects of the present invention may take the form of an entirelyhardware embodiment, an entirely software embodiment (includingfirmware, resident software, micro-code, etc.) or an embodimentcombining software and hardware aspects that may all generally bereferred to herein as a “circuit,” “module” or “system.”

As will be appreciated by one skilled in the art, aspects of the presentinvention may be embodied as a system, method or computer programproduct. Accordingly, aspects of the present invention may take the formof an entirely hardware embodiment, an entirely software embodiment(including firmware, resident software, micro-code, etc.) or anembodiment combining software and hardware aspects that may allgenerally be referred to herein as a “circuit,” “module” or “system.”Furthermore, aspects of the present invention may take the form of acomputer program product embodied in one or more computer readablemedium(s) having computer readable program code embodied thereon.

In the context of this document, a “computer-readable medium” can be anymeans that can store, communicate, propagate, or transport the programfor use by or in connection with the instruction execution system,apparatus, or device. The computer readable medium can be, for examplebut not limited to, an electronic, magnetic, optical, electromagnetic,infrared, or semiconductor system, apparatus, device, propagationmedium, or other physical device or means that can contain or store acomputer program for use by or in connection with a computer relatedsystem or method.

More specific examples (a non-exhaustive list) of the computer-readablemedium would include the following: an electrical connection(electronic) having one or more wires, a portable computer diskette(magnetic or optical), a random access memory (RAM) (electronic), aread-only memory (ROM) (electronic), an erasable programmable read-onlymemory (EPROM, EEPROM, or Flash memory) (electronic), an optical fiber(optical), and a portable compact disc memory (CDROM, CD R/W) (optical).Note that the computer-readable medium could even be paper or anothersuitable medium, upon which the program is printed or punched (as inpaper tape, punched cards, etc.), as the program can be electronicallycaptured, via for instance optical scanning of the paper or othermedium, then compiled, interpreted or otherwise processed in a suitablemanner if necessary, and then stored in a computer memory.

A computer readable signal medium may include a propagated data signalwith computer readable program code embodied therein, for example, inbaseband or as part of a carrier wave. Such a propagated signal may takeany of a variety of forms, including, but not limited to,electro-magnetic, optical, or any suitable combination thereof. Acomputer readable signal medium may be any computer readable medium thatis not a computer readable storage medium and that can communicate,propagate, or transport a program for use by or in connection with aninstruction execution system, apparatus, or device. Program codeembodied on a computer readable medium may be transmitted using anyappropriate medium, including but not limited to wireless, wireline,optical fiber cable, RF, etc., or any suitable combination of theforegoing.

These computer program instructions may also be stored in a computerreadable medium that can direct a computer, other programmable dataprocessing apparatus, or other devices to function in a particularmanner, such that the instructions stored in the computer readablemedium produce an article of manufacture including instructions whichimplement the function/act specified in the flowchart and/or blockdiagram block or blocks.

The computer program instructions may also be loaded onto a computer,other programmable data processing apparatus, or other devices to causea series of operational steps to be performed on the computer, otherprogrammable apparatus or other devices to produce a computerimplemented process such that the instructions, which execute on thecomputer or other programmable apparatus provide processes forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks.

The terminology used herein is for the purpose of describing particularembodiments only and is not intended to be limiting of the invention. Asused herein, the singular forms “a”, “an” and “the” are intended toinclude the plural forms as well, unless the context clearly indicatesotherwise. It will be further understood that the terms “comprises”and/or “comprising,” when used in this specification, specify thepresence of stated features, integers, steps, operations, elements,and/or components, but do not preclude the presence or addition of oneor more other features, integers, steps, operations, elements,components, and/or groups thereof.

The flowchart and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof code, which comprises one or more executable instructions forimplementing the specified logical function(s). It should also be notedthat, in some alternative implementations, the functions noted in theblock may occur out of the order noted in the figures. For example, twoblocks shown in succession may, in fact, be executed substantiallyconcurrently, or the blocks may sometimes be executed in the reverseorder, depending upon the functionality involved. It will also be notedthat each block of the block diagrams and/or flowchart illustration, andcombinations of blocks in the block diagrams and/or flowchartillustration, can be implemented by special purpose hardware-basedsystems that perform the specified functions or acts, or combinations ofspecial purpose hardware and computer instructions.

It should be emphasized that the above-described embodiments of thepresent invention, particularly, any “preferred” embodiments, are merelypossible examples of implementations, merely set forth for a clearunderstanding of the principles of the invention.

Many variations and modifications may be made to the above-describedembodiment(s) of the invention without departing substantially from thespirit and principles of the invention. All such modifications andvariations are intended to be included herein within the scope of thisdisclosure and the present invention and protected by the followingclaims.

What is claimed is:
 1. A packet processing system, comprising: atransmitter device for generating one or more data packets; a receiverdevice for receiving said data packets; and an asynchronous transfermode switching fabric including at least one communication switch fortransmitting said data packets between said transmitter device and saidreceiver device; wherein each communication switch is configured to:segment a data packet generated by said transmitter device into multiplemember cells for transmission via said switching fabric; and reassemblesaid member cells into a data packet for delivery to said receiverdevice.
 2. The system of claim 1, wherein each communication switchcomprises: a reassembly module for reassembling member cells into a datapacket, wherein each member cell comprises a segment of the data packetand a header; and a content addressable memory comprising a reassemblytable including one or more entries corresponding to one or more datapackets, wherein each entry comprises a logic key for a correspondingdata packet and a content index into a reassembly buffer area forstoring member cells of a data packet.
 3. The system of claim 2, whereineach reassembly module of each communication switch comprises isconfigured to: receive an incoming member cell of a data packet fromsaid switching fabric; generate a reassembly key based on a header ofsaid incoming member cell; check a reassembly table maintained in acontent addressable memory of said communication switch to find an entrythat includes a logic key matching said reassembly key; and utilize acontent index in said found entry and a sequence number of said incomingmember cell within said data packet to determine a location offset insaid reassembly buffer area for storing said incoming member cell forsaid data packet for reassembly.
 4. The system of claim 3, wherein eachreassembly module of each communication switch comprises is furtherconfigured to: reassemble a data packet using member cells stored insaid reassembly buffer area for said data packet.
 5. The system of claim3, wherein each reassembly module of each communication switch comprisesis further configured to: detect and correct errors in each member cellstored in said reassembly buffer.
 6. The system of claim 1, wherein eachcommunication switch comprises: a segmentation module for segmenting adata packet into multiple member cells, wherein each member cellcomprises a segment of the data packet and a header.
 7. A method,comprising: generating, at a transmitter device, a data packet; andtransmitting said data packets to a receiver device via an asynchronoustransfer mode switching fabric including at least one communicationswitch; wherein each communication switch is configured to: segment adata packet generated by said transmitter device into multiple membercells for transmission via said switching fabric; and reassemble saidmember cells into a data packet for delivery to said receiver device. 8.The method of claim 7, further comprising: at each communication switch:reassembling member cells into a data packet, wherein each member cellcomprises a segment of the data packet and a header; and maintaining areassembly table including one or more entries corresponding to one ormore data packets, wherein each entry comprises a logic key for acorresponding data packet and a content index into a reassembly bufferarea for storing member cells of a data packet.
 9. The method of claim8, further comprising: at each communication switch: receiving anincoming member cell of a data packet from said switching fabric;generating a reassembly key based on a header of said incoming membercell; checking a reassembly table maintained in a content addressablememory of said communication switch to find an entry that includes alogic key matching said reassembly key; and utilizing a content index insaid found entry and a sequence number of said incoming member cellwithin said data packet to determine a location offset in saidreassembly buffer area for storing said incoming member cell for saiddata packet for reassembly.
 10. The method of claim 9, furthercomprising: at each communication switch: reassembling a data packetusing member cells stored in said reassembly buffer area for said datapacket.
 11. The method of claim 9, further comprising: at eachcommunication switch: detecting and correcting errors in each membercell stored in said reassembly buffer.
 12. The method of claim 9,further comprising: at each communication switch: segmenting a datapacket into multiple member cells, wherein each member cell comprises asegment of the data packet and a header.
 13. A computer program productfor feature extraction, the computer program product comprising acomputer-readable storage medium having program code embodied therewith,the program code being executable by a computer to: generate, at atransmitter device, a data packet; and transmit said data packets to areceiver device via an asynchronous transfer mode switching fabricincluding at least one communication switch; wherein each communicationswitch is configured to: segment a data packet generated by saidtransmitter device into multiple member cells for transmission via saidswitching fabric; and reassemble said member cells into a data packetfor delivery to said receiver device.
 14. The computer program productof claim 13, the program code being further executable by a computer to:at each communication switch: reassemble member cells into a datapacket, wherein each member cell comprises a segment of the data packetand a header; and maintain a reassembly table including one or moreentries corresponding to one or more data packets, wherein each entrycomprises a logic key for a corresponding data packet and a contentindex into a reassembly buffer area for storing member cells of a datapacket.
 15. The computer program product of claim 14, the program codebeing further executable by a computer to: at each communication switch:receive an incoming member cell of a data packet from said switchingfabric; generate a reassembly key based on a header of said incomingmember cell; check a reassembly table maintained in a contentaddressable memory of said communication switch to find an entry thatincludes a logic key matching said reassembly key; and utilize a contentindex in said found entry and a sequence number of said incoming membercell within said data packet to determine a location offset in saidreassembly buffer area for storing said incoming member cell for saiddata packet for reassembly.
 16. The computer program product of claim15, the program code being further executable by a computer to: at eachcommunication switch: reassemble a data packet using member cells storedin said reassembly buffer area for said data packet.
 17. The computerprogram product of claim 16, the program code being further executableby a computer to: at each communication switch: detect and correcterrors in each member cell stored in said reassembly buffer.
 18. Thecomputer program product of claim 13, the program code being furtherexecutable by a computer to: at each communication switch: segment adata packet into multiple member cells, wherein each member cellcomprises a segment of the data packet and a header.